package beautiful.sort;

/**
 * @author: LWQ
 * @description: 冒泡排序
 * @date: 2022-2-6 22:32
 * @version: 1.0
 */
public class BubbleSort {
    public static void main(String[] args) {
        int arr[] = {1,2,5,4,3,7,6,8};
        solution(arr);
        for (int i : arr) {
            System.out.println(i);
        }
    }

    //冒泡排序，a表示数组，n表示数组大小
    public static void solution(int[] arr){
        if(arr.length <= 1) return;
        for (int i = 0; i < arr.length; ++i) {
            // 提前退出的标志
            boolean flag = false;
            //从0开始到上次比较完结束的位置,因为是从0开始的，所以要多减一
            for (int j = 0; j < arr.length - i - 1; ++j) {
                if(arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    flag = true;// 有移动
                }
            }
            if(!flag) break;// 没有数据交换，提前退出
        }
    }
}
